﻿/*
SINACOR - BMF&Bovespa
Arquivo: ParametroInformado.cs
Criado em: 26-mai-2010 17:49:30
Arquiteto Responsável: p-wgeneroso
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Common;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation.BusinessRules;
using Sinacor.Infra.Common.Validation;

namespace Sinacor.Servico.Bovespa.Cliente.BusinessLogic.BusinessRuleValidation
{
    public class ParametroInformado<T> : IBusinessRuleValidation
    {
        #region Atributos

        private T _entidade;
        private int _erroObjetoNulo = 109721;
        private List<ValidationError> _errors = new List<ValidationError>();

        #endregion

        #region Construtores

        public ParametroInformado()
        {
        }

        #endregion

        #region Propriedades

        public T Entidade
        {
            get
            {
                return _entidade;
            }
            set
            {
                _entidade = value;
            }
        }

        public int ErroObjetoNulo
        {
            get
            {
                return _erroObjetoNulo;
            }
            set
            {
                _erroObjetoNulo = value;
            }
        }
        
        #endregion

        #region Métodos

        public List<ValidationError> GetErrors()
        {
            return _errors;
        }

        public void Validate()
        {
            if (_entidade == null)
                _errors.Add(new ValidationError(ErroObjetoNulo));
        }

        #endregion
    }
}